/**
 * Created by 春旺 on 2017/3/23.
 */
//************************************************************************************************************************
// LetterCount.java          Java Foundations
//
//Demonstrates the relationship between arrays and strings.
//*************************************************************************************************************************

import java.util.Scanner;

public class LetterCount
{
    //---------------------------------------------------------------------------------------------------------------------
    //Reads a sentence from the user and counts the nmber of
    // uppercase and lowercase letters contained in it.
    //--------------------------------------------------------------------------------------------------------------------
    public static void main(String[] args)
    {
        final int NUMCHARS = 26;

        Scanner scan = new Scanner(System.in);

        int[] upper = new int[NUMCHARS];
        int[] lower = new int [NUMCHARS];

        char current;  // the current character being processed.
        int other = 0;  // counter for non-alphabetics
        System.out.println("Enter a sentence: ");
        String line = scan.nextLine();

        //  Count the number of each letter occurrence
        for (int ch = 0; ch <line.length(); ch ++)
        {
            current = line.charAt(ch);
            if (current >= 'A' && current <= 'Z')
                upper[current-'A']++;
            else
            if (current >= 'a' && current <= 'z')
                lower[current-'a']++;
            else
                other++;
        }
        // Print the results
        System.out.println();
        for (int letter = 0; letter < upper.length; letter++)
        {
            System.out.print((char)  ( letter + 'A'));
            System.out.print(":" + upper[letter]);
            System.out.print("\t\t" + (char) (letter + 'a'));
           System.out.println(":" + lower[letter]);
        }
        System.out.println();
        System.out.println("Non-aphabetic character: " + other);
        }

    }

